Why do we use the volatile keyword